Page({
  data: {
    pageNum: 1,
    dataList: [],
    pageCount: 0,
    isLoading: false,    // 新增：是否正在加载
    hasMore: true,       // 新增：是否还有更多数据
    loadError: false,    // 新增：是否加载失败
  },

  getData() {
    // 防止重复请求
    if (this.data.isLoading || !this.data.hasMore) return;
    
    this.setData({ isLoading: true });
    
    wx.request({
      url: 'http://localhost:8080/article/page/status',
      data: {
        pageNum: this.data.pageNum,
        pageSize: 15,
        status:1
      },
      header: {
        'Cache-Control': 'no-cache'
      },
      method: 'GET',
      success: (resp) => {
        console.log("数据", resp);
        
        if (resp.data.code === 200) {
          const newData = resp.data.data.list || [];
          const pageCount = resp.data.data.pageTotal || 0;
          
          // 判断是否还有更多数据
          const hasMore = this.data.pageNum < pageCount;
          
          this.setData({
            dataList: this.data.dataList.concat(newData),
            pageCount,
            hasMore,
            loadError: false
          });
        } else {
          wx.showToast({
            title: '获取数据失败',
            icon: 'none'
          });
          this.setData({ loadError: true });
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
        this.setData({ loadError: true });
      },
      complete: () => {
        this.setData({ isLoading: false });
        wx.stopPullDownRefresh();
      }
    });
  },

  onLoad(options) {
    this.getData();
  },

  onPullDownRefresh() {
    this.setData({
      pageNum: 1,
      dataList: [],
      hasMore: true,
      loadError: false
    });
    this.getData();
  },

  onReachBottom() {
    // 只有在没有加载中且还有更多数据时才请求
    if (!this.data.isLoading && this.data.hasMore) {
      this.setData({
        pageNum: this.data.pageNum + 1
      });
      this.getData();
    } else if (!this.data.hasMore) {
      wx.showToast({
        title: '已经到达最底部啦!',
        icon: 'none'
      });
    }
  },
});